/*
    7-7 判断双对称方阵
对于一个n阶方阵，请判断该方阵是否双对称，即既左右对称又上下对称。若是则输出“yes”，否则输出“no”。
例如，样例中，以第2列为界则左右对称，以第2行为界则上下对称，因此输出“yes”。

1
3
1 2 1
3 5 3
1 2 1

yes
*/

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;cin>>n;
	while(n--){
		int m;cin>>m;
		int a[m][m];
		int flag=1;
		for(int i=0;i<m;i++)
			for(int j=0;j<m;j++)
				cin>>a[i][j];
        //判断上下是否对称
		for(int i=0;i<=m/2;i++)
			for(int j=0;j<m;j++){
				if(a[i][j]!=a[m-i-1][j]){
					flag=0;
					break;
				}
					
			}
		//判断左右是否对称
		for(int i=0;i<m;i++)
			for(int j=0;j<=m/2;j++){
				if(a[i][j]!=a[i][m-j-1]){
					flag=0;
					break;
				}
			}
		if(flag) cout<<"yes"<<endl;
		else cout<<"no"<<endl;
	}
}